The present invention relates generally to the field of application programming interfaces (APIs), and more particularly to the field of API package construction.
APIs are known. Conventionally, an API includes a code portion (or “API portion”) and a Terms of Service portion (“ToS portion”, also, more simply, sometimes called a “ToS”)). It is known to combine multiple APIs into “API packages.” Typically, when an API package is made: (i) the code portions of the respective APIs remain separate; and (ii) the ToS portions of the API package remain separate.
The ToS portion is a set of rules and specifications that a software program can follow to access and make use of the services and resources provided by another software program that implements that API code portion. The API code portion provides code to set up a data communication interface between different software programs to facilitate interaction between the software programs. The API economy is a complex network of services built from APIs enabled by multiple providers, with each API having its own engagement model and objectives. APIs are typically governed by terms of service, which are rules that an API consumer must agree to abide by in order to purchase and/or use an API. When selecting APIs and their corresponding terms of service, API consumers have different objectives and/or criteria to consider in making their selection.
API matchmaking is known. Thousands of APIs are now readily available, with differing functionality and API features. In order to support API consumers in selecting the appropriate APIs, effective automated methods to match APIs with consumer requirements and/or preferences are required.
Feature models are known. A feature model is a compact representation of software “features.” A feature is a prominent or distinctive user-visible aspect, quality, or characteristic of a software system. Feature models are visually represented by using feature diagrams. Feature models are used during the software development process and are commonly used to produce other assets such as documents, architecture definition, and/or pieces of code.